﻿using UniMana.Utils.Data;
using DevExpress.XtraBars;
using UniMana.Utils.Controls;
using DevExpress.XtraEditors;
using System.Windows.Forms;
using System;
using UniMana.Utils.Configs;
using UniMana.Data;

namespace UniMana.Win.Training
{
    public partial class FrmScoreType : DevExpress.XtraEditors.XtraForm
    {
        private DBMain m_data = new DBMain();
        private bds m_bds = new bds();
        public FrmScoreType()
        {
            if (!SysUtils.CheckAccessByRule(RuleConfig.SCORETYPE))
            {
                XtraMessageBox.Show("Bạn không có quyền này!","Thông báo");
                return;
            }
            InitializeComponent();
            LoadData();
            Button();
        }
        public void LoadData()
        {
            m_bds.DataSource = m_data.m_DCSave.Training_ScoreTypes;
            gctScoreType.DataSource = m_bds;
            lcgInfo.LoadOneRecord(m_bds);
            xucBar.btnImportExcel.Enabled = false;
        }
        public void Button()
        {
            xucBar.btnAddNew_Click += new xucBar.ButtonClickHandler(btnAddNew_Click);
            xucBar.btnDelete_Click += new xucBar.ButtonClickHandler(btnDelete_Click);
            xucBar.btnCancel_Click += new xucBar.ButtonClickHandler(btnCancel_Click);
            xucBar.btnSave_Click += new xucBar.ButtonClickHandler(btnSave_Click);
            xucBar.btnRefresh_Click += new xucBar.ButtonClickHandler(btnRefresh_Click);
            xucBar.btnExport_Click += new xucBar.ButtonClickHandler(btnExportExcel_ItemClick);
        }
        private void btnAddNew_Click(object sender, ItemClickEventArgs e)
        {
            if (!SysUtils.CheckAddByRule(RuleConfig.SCORETYPE))
            {
                XtraMessageBox.Show("Bạn không có quyền này!", "Thông báo");
                return;
            }
            m_bds.AddNew();
        }
        private void btnDelete_Click(object sender, ItemClickEventArgs e)
        {
            if (!SysUtils.CheckDeleteByRule(RuleConfig.SCORETYPE))
            {
                XtraMessageBox.Show("Bạn không có quyền này!", "Thông báo");
                return;
            }
            if (m_data.m_DCReadOnly.Training_SubjectClass_ScoreTypes.CheckDelete(int.Parse(grvScoreType.GetFocusedRowCellValue(grvScoreType.Columns[0]).ToString())) == false)
            {
                DialogResult diag = XtraMessageBox.Show("Bạn có muốn xóa không?", "Thông báo", MessageBoxButtons.YesNo, MessageBoxIcon.Warning);
                switch(diag)
                {
                    case DialogResult.Yes:
                        {
                            m_bds.DeleteCurrent();
                            m_data.m_DCSave.SubmitChanges();
                            XtraMessageBox.Show("Xóa thành công!", "Thông báo");
                            break;
                        }
                    case DialogResult.No:
                        {
                            break;
                        }
                  }
            }
            else
            {
                XtraMessageBox.Show("Không thể xóa! \nDữ liệu đang được sử dụng!","Thông báo",MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
        }
        private void btnEdit_Click(object sender, ItemClickEventArgs e)
        {
        }
        private void btnCancel_Click(object sender, ItemClickEventArgs e)
        {
            m_data = new DBMain();
            LoadData();
        }
        private void btnSave_Click(object sender, ItemClickEventArgs e)
        {
            this.Validate();
            m_data.m_DCSave.SubmitChanges();
        }
        private void btnRefresh_Click(object sender, ItemClickEventArgs e)
        {
            m_data = new DBMain();
            LoadData();
        }
        private void btnExportExcel_ItemClick(object sender, ItemClickEventArgs e)
        {
            if (!SysUtils.CheckExportByRule(RuleConfig.SCORETYPE))
            {
                XtraMessageBox.Show("Bạn không có quyền này!", "Thông báo");
                return;
            }
            SaveFileDialog saveFile = new SaveFileDialog();
            saveFile.FileName = "Bảng Loại Điểm_" + DateTime.Now.Date.ToShortDateString().Replace('/', '_');
            saveFile.Title = "Xuất ra tệp tin";
            saveFile.DefaultExt = "xls";
            saveFile.Filter = "Excel 2003 (*.xls)|";
            if (saveFile.ShowDialog() == DialogResult.OK)
            {
                grvScoreType.ExportToXls(saveFile.FileName);
            }
        }
    }
}